package com.jinmdz.fmis.dao.model.settlement;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jinmdz.fmis.core.annotation.AnDict;
import com.jinmdz.fmis.core.constant.EDictCode;
import com.jinmdz.fmis.dao.base.BaseItem;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 打印发票信息
 *
 * @author LiCongLu
 * @date 2020-05-14 11:05
 */
public class ChargeInvoiceItem extends BaseItem {
    /**
     * 业务编码
     */
    private String businessCode;

    /**
     * 发票代码
     */
    private String invoiceCode;

    /**
     * 发票号码
     */
    private String invoiceNo;

    /**
     * 发票抬头
     */
    private String invoiceTitle;

    /**
     * 发票金额
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal invoiceCharge;

    /**
     * 打印发票时间
     */
    @JsonFormat(pattern = yyyy_MM_dd_HH_mm)
    private Date invoiceTime;

    /**
     * 发票状态
     */
    private Integer invoiceStateCode;

    /**
     * 发票状态
     */
    @AnDict(dict = EDictCode.INVOICE_STATE, ref = "invoiceStateCode")
    private String invoiceState;

    /**
     * 备注信息
     */
    private String remark;

    public String getBusinessCode() {
        return businessCode;
    }

    public ChargeInvoiceItem setBusinessCode(String businessCode) {
        this.businessCode = businessCode;
        return this;
    }

    public String getInvoiceCode() {
        return invoiceCode;
    }

    public ChargeInvoiceItem setInvoiceCode(String invoiceCode) {
        this.invoiceCode = invoiceCode;
        return this;
    }

    public String getInvoiceNo() {
        return invoiceNo;
    }

    public ChargeInvoiceItem setInvoiceNo(String invoiceNo) {
        this.invoiceNo = invoiceNo;
        return this;
    }

    public String getInvoiceTitle() {
        return invoiceTitle;
    }

    public ChargeInvoiceItem setInvoiceTitle(String invoiceTitle) {
        this.invoiceTitle = invoiceTitle;
        return this;
    }

    public BigDecimal getInvoiceCharge() {
        return invoiceCharge;
    }

    public ChargeInvoiceItem setInvoiceCharge(BigDecimal invoiceCharge) {
        this.invoiceCharge = invoiceCharge;
        return this;
    }

    public Date getInvoiceTime() {
        return invoiceTime;
    }

    public ChargeInvoiceItem setInvoiceTime(Date invoiceTime) {
        this.invoiceTime = invoiceTime;
        return this;
    }

    public Integer getInvoiceStateCode() {
        return invoiceStateCode;
    }

    public ChargeInvoiceItem setInvoiceStateCode(Integer invoiceStateCode) {
        this.invoiceStateCode = invoiceStateCode;
        return this;
    }

    public String getInvoiceState() {
        return invoiceState;
    }

    public ChargeInvoiceItem setInvoiceState(String invoiceState) {
        this.invoiceState = invoiceState;
        return this;
    }

    public String getRemark() {
        return remark;
    }

    public ChargeInvoiceItem setRemark(String remark) {
        this.remark = remark;
        return this;
    }
}
